package com.oauth.service.application;

import java.util.Collection;
import java.util.List;
import java.util.Set;

import com.oauth.service.application.global.beans.GlobalDataType;
import com.oauth.service.application.registry.beans.ApplicationInfoBean;

public interface ApplicationService {

	Set<Long> getUnsubscribedApplicationId(Long pMemberId);

	List<ApplicationInfoBean> getUnsubscribedApplication(Long pMemberId);

	Set<Long> getSubscribedApplicationId(Long pMemberId);

	List<ApplicationInfoBean> getSubscribedApplication(Long pMemberId);

	boolean subscribeApplication(Long pMemberId, Long pApplicationId);

	boolean unSubscribeApplication(Long pMemberId, Long pApplicationId);

	Set<Long> getApplicationIdSetWithDataType(GlobalDataType pGlobalDataType);

	Set<Long> getApplicationIdSetWithDataTypeForMember(Long pMemberId,
			GlobalDataType pGlobalDataType);

	Collection<ApplicationInfoBean> getApplicationInfo(Set<Long> pApplicationId);
}
